home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Found / FWCollec / Include / FWTColl.h < prev    next >
Encoding:
Text File  |  1996-04-25  |  4.1 KB  |  115 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWTColl.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWTCOLL_H
  11. #define FWTCOLL_H
  12.  
  13. #ifndef FWORDCOL_H
  14. #include "FWOrdCol.h"
  15. #endif
  16.  
  17. #ifndef FWEXCLIB_H
  18. #include "FWExcLib.h"
  19. #endif
  20.  
  21. //========================================================================================
  22. // Class FW_TOrderedCollection
  23. //========================================================================================
  24.  
  25. template<class t> 
  26. class FW_TOrderedCollection : public FW_CPrivOrderedCollection
  27. {
  28. public:
  29.     FW_DECLARE_AUTO(FW_TOrderedCollection)
  30.     
  31. //    friend class FW_TOrderedCollectionIterator<t>;
  32.     
  33. //----------------------------------------------------------------------------------------
  34. //    Constructors/Destructor
  35. //
  36. public:
  37.     FW_TOrderedCollection(FW_OrderedCollection_MatchProc matchProc = NULL) :
  38.         FW_CPrivOrderedCollection(matchProc) {}
  39.     ~FW_TOrderedCollection() {}
  40.  
  41. //----------------------------------------------------------------------------------------
  42. //    API
  43. //
  44. public:
  45.     unsigned long         Count() const             
  46.                             {return FW_PrivOrderedCollection_Count(fImplementation);}
  47.     
  48.     void                AddFirst(const t* element)
  49.                             {FW_FailOnError(FW_PrivOrderedCollection_AddFirst(fImplementation, element));}
  50.     void                AddLast(const t* element)
  51.                             {FW_FailOnError(FW_PrivOrderedCollection_AddLast(fImplementation, element));}
  52.     void                AddBefore(const t* existing, const t* tobeadded)
  53.                             {FW_FailOnError(FW_PrivOrderedCollection_AddBefore(fImplementation, fMatchProc, existing, tobeadded));}
  54.     void                AddAfter(const t* existing, const t* tobeadded)
  55.                             {FW_FailOnError(FW_PrivOrderedCollection_AddAfter(fImplementation, fMatchProc, existing, tobeadded));}
  56.  
  57.     t*                    After(const t* existing) const
  58.                             {return (t*)FW_PrivOrderedCollection_After(fImplementation, fMatchProc, existing);}
  59.     t*                    Before(const t* existing) const
  60.                             {return (t*)FW_PrivOrderedCollection_Before(fImplementation, fMatchProc, existing);}
  61.  
  62.     t*                    First() const
  63.                             {return (t*)FW_PrivOrderedCollection_First(fImplementation);}
  64.     t*                    Last() const
  65.                             {return (t*)FW_PrivOrderedCollection_Last(fImplementation);}
  66.  
  67.     t*                    RemoveFirst()
  68.                             {return (t*)FW_PrivOrderedCollection_RemoveFirst(fImplementation);}
  69.     t*                    RemoveLast()
  70.                             {return (t*)FW_PrivOrderedCollection_RemoveLast(fImplementation);}
  71.     void                RemoveAll()
  72.                             {FW_PrivOrderedCollection_RemoveAll(fImplementation);}
  73.         
  74.     void                Remove(const t* existing)
  75.                             {FW_PrivOrderedCollection_Remove(fImplementation, fMatchProc, existing);}
  76.     FW_Boolean            Contains(const t* existing) const
  77.                             {return FW_PrivOrderedCollection_Contains(fImplementation, fMatchProc, existing);}
  78. };
  79.  
  80. //========================================================================================
  81. // Class FW_TOrderedCollectionIterator
  82. //========================================================================================
  83.  
  84. template<class t> 
  85. class FW_TOrderedCollectionIterator : public FW_CPrivOrderedCollectionIterator
  86. {
  87. public:
  88.     FW_DECLARE_AUTO(FW_TOrderedCollectionIterator)
  89.  
  90. //----------------------------------------------------------------------------------------
  91. //    Constructors/Destructor
  92. //
  93. public:
  94.     FW_TOrderedCollectionIterator(const FW_TOrderedCollection<t>* collection) :
  95.         FW_CPrivOrderedCollectionIterator(collection) {}
  96.     ~FW_TOrderedCollectionIterator() {}
  97.     
  98. //----------------------------------------------------------------------------------------
  99. //    API
  100. //
  101. public:
  102.     t*                First()
  103.                         {return (t*)FW_PrivOrderedCollectionIterator_First(fImplementation);}
  104.     t*                Next()
  105.                         {return (t*)FW_PrivOrderedCollectionIterator_Next(fImplementation);}
  106.     t*                Last()
  107.                         {return (t*)FW_PrivOrderedCollectionIterator_Last(fImplementation);}
  108.     t*                Previous()
  109.                         {return (t*)FW_PrivOrderedCollectionIterator_Previous(fImplementation);}
  110.     FW_Boolean        IsNotComplete()
  111.                         {return FW_PrivOrderedCollectionIterator_IsNotComplete(fImplementation);}
  112. };
  113.  
  114. #endif
  115.